home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Interactive Reference Guide / C-C++ Interactive Reference Guide.iso / c_ref / csource5 / 309_01 / printer.h < prev    next >
Text File  |  1990-03-20  |  1KB  |  58 lines

  1. /* printer.h  for hercs card printer port */
  2.  
  3. #define PRNDATA         0x93bc
  4. #define PRNSTATUS       0x93bd
  5. #define PRNCNTRL        0x93be
  6.  
  7. #code
  8.  
  9. initprn()
  10. {
  11.         char ch, *prn;
  12.         int delay;
  13.         prn = PRNCNTRL;
  14.         *prn = 8;
  15.         for( delay = 0; delay < 2000; delay++ )
  16.                 ;
  17.         *prn = 13;
  18. }
  19.  
  20. prnstatus()
  21. {
  22.         char ch, *prn;
  23.         prn = PRNSTATUS;
  24.         ch = *prn & 0xf8;
  25.         return ch;
  26. }
  27.  
  28. prnchar(ch)     /* write char to prn port */
  29. char ch;
  30. {
  31.         char status, *prn;
  32.         int loop;
  33.         prn = PRNDATA;
  34.         status = prnstatus() & 128;
  35.         while( status == 0 ) {
  36.                 status = prnstatus & 128;
  37.                 ++loop;
  38.                 if( loop == 250 ) { status = prnstatus(); return status; }
  39.         }
  40.         *prn = ch;
  41.         *(prn+2) = 12;
  42.         for( loop = 0; loop < 1000; loop++ )
  43.                 ;
  44.         *(prn+2) = 13;
  45. }
  46.  
  47. /* status port d3 = error
  48.                d4 = select status 1=selected
  49.                d5 = paper out if 1
  50.                d6 = acknowledge, cleared pulse when ready to accept data
  51.                d7 = busy 1 can accept new data, 0 = busy
  52.  
  53.    control     d0 = strobe, 0 to read
  54.                d1 = line feed enable, 0 = off (normal)
  55.                d2 = 0 resets printer
  56.                d3 = 1 select printer
  57.                d4 = irq7 enable
  58. */